/**********************************************************************************************/
/* VSQL.h																		 	  		  */
/*                                                                       					  */
/* Copyright Paradigma, 1993-2006                                        					  */
/* All Rights Reserved.                                                 					  */
/**********************************************************************************************/

#ifndef _VSQL_h
   #define _VSQL_h
#pragma once

#include <VShared/FBL/publ/Headers/FBL.h>

#include <VShared/FBL/publ/Headers/FBL_pre_header.h>


/**********************************************************************************************/
// Define VSQL namespace
// 
FBL_Begin_Namespace

#if Uses_Namespace
#define VSQL						vsql
#define VSQL_Begin_Namespace		namespace FBL { namespace VSQL {
#define VSQL_End_Namespace			} }
#define VSQL_Using_Namespace		using namespace FBL::VSQL;
#else
#define VSQL						FBL
#define VSQL_Begin_Namespace		FBL_Begin_Namespace
#define VSQL_End_Namespace			FBL_End_Namespace
#define VSQL_Using_Namespace		FBL_Using_Namespace
#endif

FBL_End_Namespace


/**********************************************************************************************/
VSQL_Begin_Namespace


//----------------------------------------------------------------------------------------------
// SQL Cursor CONSTANTS: 
//----------------------------------------------------------------------------------------------

/// Specify the cursor location. 
enum ECursorLocation 
{
	kClient = 1,		///< Client side cursor
	kServer,			///< Server side cursor
	kServerBulk			///< Server side read-only cursor that can load records in batch mode.
};


enum ELockType
{
	kNoLocks = 1,		///< Cursor must not lock records. Also ignore locks of other cursors.
	kReadOnly = 2,		///< Cursor must lock records as ReadOnly.
	kReadWrite = 3		///< Cursor must lock records as ReadWrite.
};

/// Specify cursor direction.
enum ECursorDirection
{
	kForwardOnly = 1,	///< Navigation can be only from first to last records. ONCE.
	kRandom				///< Navigation can be in both directions. many times.
};


/**********************************************************************************************/
VSQL_End_Namespace


/**********************************************************************************************/
#include <VShared/VSQL/Errors/VSQL_Errors.h>
#include <VShared/VSQL/Errors/VSQL_Exceptions.h>


/**********************************************************************************************/
#include <VShared/FBL/publ/Headers/FBL_post_header.h>

#endif // _VSQL_h
